package skyhyun;

public class J20_package {
	// 패키지(package)
	// 자바에서는 패키지를 이용해 관련 클래스나 유사한 기능을 가진 클래스들로 그룹화 할 수 있음
	// 자바 핵심 플래스는 java.lang 패키지에 있음
	// 자바 프로그램 작성에 도움을 주는 유틸리티
	// 클래스들은 java.util 패키지에 있음
	// java로 시작하는 패키지 이름은 핵심 라이브러리를 확장한 라이브러리라는 의미임
	// 따라서, 일반 개발자는 java나 javax로 시작하는 패키지는 만들 수 없음(실행 불가)
	
	// 또한, 클래스를 조직화하고 패키징 함으로써 '이름 충돌'을 피할 수 있음
	// 즉, 클래스 이름이 동일하더라도 패키지만 다르다면 얼마든지 허용됨
	// 단, 이러한 목적을 위해 패키지 표기법은 역방향 도메인 이름에 기초함
	
	// 예를 들어, java 공식 홈페이지 주소는 java.sun.com
	// 이것을 패키지 이름으로 작성한다면 com.sun.java 로 씀
	// 일반적으로 패키지는 '조직성격, 회사명, 기타 등등' 순으로 작성하는 것이 관례임
	
	// org.iedu.javaled17.아이디.프로젝트명.클래스명
	
	// 패키지는 물리적 개체가 아님 - 만드는 데 돈 안 듦
	// 따라서, 하나만 만들 필요 없음
	// 패키지를 통해 클래스를 그룹화 하려면 package 라는 예약어를 사용
	// 클래스의 패키지화는 클래스의 가시성에 영향을 줌
	
	// 패키지는 물리적인 객체가 아니지만 패키지 이름은 소스파일의 물리적인 위치와 관련있음
	// 따라서, a.b.c 라는 패키지를 가진 클래스 D는 a/b/c 디렉토리 아래에
	// D라는 소스파일이 존재한다는 것을 의미 
	
	// 한편, 패키지 선언이 없는 클래스는 '기본(default) 패키지'에 속해 있다고 말함
	// 기본 패키지에 속한 클래스들은 기본 패키지 밖에서는 볼 수 없음
	
	
	
	public static void main(String[] args) {
		
		
	}
}
